<template>
	<div class="wrapper">

		<header>
			<div class="go-back"><i class="fa fa-reply" @click="goback"></i></div>
			<p>在线支付</p>
		</header>

		<h3>订单信息：</h3>
		<div class="order-info">
			<p>
				{{orders.business.businessName}}
				<i class="fa fa-caret-down" @click="detailetShow"></i>
			</p>
			<p>&#165;{{(orders.orderTotal-orders.sale).toFixed(2)}}</p>
		</div>

		<ul class="order-detailet" v-show="isShowDetailet">
			<li v-for="item in orders.list">
				<p>{{item.food.foodName}} x {{item.quantity}}</p>
				<p>&#165;{{(item.food.foodPrice*item.quantity).toFixed(2)}}</p>
			</li>
			<li>
				<p>配送费</p>
				<p>&#165;{{orders.business.deliveryPrice.toFixed(2)}}</p>
			</li>
			<li>
				<p>红包优惠</p>
				<p style="color: orangered;">-&#165;{{(orders.sale).toFixed(2)}}</p>
			</li>
		</ul>

		<!-- 支付方式部分 -->
		<ul class="payment-type">
			<li>
				<img src="../assets/alipay.png">
				<i class="fa fa-check-circle"></i>
			</li>
			<li>
				<img src="../assets/wechat.png">
			</li>
		</ul>
		<div class="payment-button">
			<button @click="topay">确认支付</button>
		</div>

		<!-- 底部菜单部分 -->
		<Footer></Footer>
	</div>
</template>

<script>
	import Footer from '../components/Footer.vue';

	export default {
		name: 'Payment',
		data() {
			return {
				VirtualWallet: '',
				BVirtualWallet: '',
				user: {},
				orderId: this.$route.query.orderId,
				// orders: {
				// 	business: {}
				// },
				orders: {
					business: {
						businessName: '',
						deliveryPrice: 0
					},
					list: [],
					orderTotal: 0,
					sale: 0
				},
				isShowDetailet: false
			}
		},
		created() {
			this.user = this.$getSessionStorage('user');

			let url = `OrdersController/getOrdersById/${this.orderId}`;
			this.$axios.get(url).then((response) => {
					this.orders = response.data.result;
					this.togetWalletId();
				})
				.catch((error) => {
					console.error(error);
				});
		},
		mounted() {
			//这里的代码是实现：一旦路由到在线支付组件，就不能回到订单确认组件。
			//先将当前url添加到history对象中
			history.pushState(null, null, document.URL);
			//popstate事件能够监听history对象的变化
			window.onpopstate = () => {
				this.$router.push({
					path: '/index'
				});
			}
		},
		destroyed() {
			window.onpopstate = null;
		},
		methods: {
			detailetShow() {
				this.isShowDetailet = !this.isShowDetailet;
			},
			togetWalletId() {
				let url = `VirtualWalletController/getVirtualWalletByUserId/${this.user.userId}`;
				this.$axios.get(url).then((response) => {
						this.VirtualWallet = response.data.result;
					})
					.catch((error) => {
						console.error(error);
					});

				let urll = `BVirtualWalletController/getVirtualWalletByBusinessId/${this.orders.business.businessId}`;
				this.$axios.get(urll).then((response) => {
						this.BVirtualWallet = response.data.result;
					})
					.catch((error) => {
						console.error(error);
					});
			},
			topay() {
				let url =
					`VirtualWalletController/Payment/${this.VirtualWallet.walletId}/${this.BVirtualWallet.walletId}/${this.orders.orderTotal-this.orders.sale}/${this.orderId}`;
				this.$axios.post(url).then((response) => {
						if (response.data.result == 1) {
							this.toCredit();
							this.$router.push({
								path: '/success',
								query: {
									orderId: this.orderId
								}
							});
						}
					})
					.catch((error) => {
						console.error(error);
					});
			},
			toCredit(){
				let url = `CreditController/insertCredit/${this.user.userId}/${Math.ceil(this.orders.orderTotal / 10)}/${2}`;
				this.$axios.post(url)
					.then((response) => {
						if(response.data.result == 1){
							alert('支付成功');
						}
						else{
							alert('支付失败');
						}
					})
					.catch((error) => {
						console.error(error);
					});
			},
			goback() {
				this.$router.go(-1);
			}
		},
		components: {
			Footer
		},
	}
</script>

<style scoped>
	/****************** 总容器 ******************/
	.wrapper {
		width: 100%;
		height: 100%;
	}

	/****************** header部分 ******************/
	.wrapper header {
		width: 100%;
		height: 12vw;
		background-color: #0097FF;
		color: #fff;
		font-size: 4.8vw;

		position: fixed;
		left: 0;
		top: 0;
		z-index: 1000;

		display: flex;
		/*justify-content: center;*/
		align-items: center;
	}

	.wrapper header .go-back {
		padding: 0 32vw 0 2vw;
	}

	/****************** 订单信息部分 ******************/
	.wrapper h3 {
		margin-top: 12vw;
		box-sizing: border-box;
		padding: 4vw 4vw 0;

		font-size: 4vw;
		font-weight: 300;
		color: #999;
	}

	.wrapper .order-info {
		box-sizing: border-box;
		padding: 4vw;
		font-size: 4vw;
		color: #666;

		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.wrapper .order-info p:last-child {
		color: orangered;
	}

	/****************** 订单明细部分 ******************/
	.wrapper .order-detailet {
		width: 100%;
	}

	.wrapper .order-detailet li {
		width: 100%;
		box-sizing: border-box;
		padding: 1vw 4vw;

		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.wrapper .order-detailet li p {
		font-size: 3vw;
		color: #666;
	}

	/****************** 支付方式部分 ******************/
	.wrapper .payment-type {
		width: 100%;
	}

	.wrapper .payment-type li {
		width: 100%;
		box-sizing: border-box;
		padding: 4vw;

		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.wrapper .payment-type li img {
		width: 33vw;
		height: 8.9vw;
	}

	.wrapper .payment-type li .fa-check-circle {
		font-size: 5vw;
		color: #38CA73;
	}

	.wrapper .payment-button {
		width: 100%;
		box-sizing: border-box;
		padding: 4vw;
	}

	.wrapper .payment-button button {
		width: 100%;
		height: 10vw;
		border: none;
		/*去掉外轮廓线*/
		outline: none;
		border-radius: 4px;
		background-color: #38CA73;
		color: #fff;
	}
</style>
